/////////////////////////////////////////////////////////////////////////////
// Name:        commandeditortypedialog.h
// Purpose:     
// Author:      Julian Smart
// Modified by: 
// Created:     15/12/2008 16:32:25
// RCS-ID:      
// Copyright:   (c) Anthemion Software Limited
// Licence:     New BSD License
/////////////////////////////////////////////////////////////////////////////

#ifndef _COMMANDEDITORTYPEDIALOG_H_
#define _COMMANDEDITORTYPEDIALOG_H_


/*!
 * Includes
 */

////@begin includes
#include "wx/valgen.h"
////@end includes

#include "commandeditor/commandeditor.h"

/*!
 * Forward declarations
 */

////@begin forward declarations
////@end forward declarations

/*!
 * Control identifiers
 */

////@begin control identifiers
#define ID_COMMANDEDITORTYPEDIALOG 21600
#define ID_COMMANDEDITORTYPEDIALOG_NAME 21601
#define ID_COMMANDEDITORTYPEDIALOG_MEDIA_TYPE 21605
#define ID_COMMANDEDITORTYPEDIALOG_EXTENSIONS 21602
#define ID_COMMANDEDITORTYPEDIALOG_VIEW_EXTENSION 21603
#define ID_COMMANDEDITORTYPEDIALOG_EDIT_EXTENSION 21604
#define SYMBOL_WXCOMMANDEDITORTYPEDIALOG_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX|wxTAB_TRAVERSAL
#define SYMBOL_WXCOMMANDEDITORTYPEDIALOG_TITLE _("Type Properties")
#define SYMBOL_WXCOMMANDEDITORTYPEDIALOG_IDNAME ID_COMMANDEDITORTYPEDIALOG
#define SYMBOL_WXCOMMANDEDITORTYPEDIALOG_SIZE wxSize(400, 300)
#define SYMBOL_WXCOMMANDEDITORTYPEDIALOG_POSITION wxDefaultPosition
////@end control identifiers


/*!
 * wxCommandEditorTypeDialog class declaration
 */

class wxCommandEditorTypeDialog: public wxDialog
{    
    DECLARE_DYNAMIC_CLASS( wxCommandEditorTypeDialog )
    DECLARE_EVENT_TABLE()

public:
    /// Constructors
    wxCommandEditorTypeDialog();
    wxCommandEditorTypeDialog( const wxEditorCommands& commands, wxWindow* parent, wxWindowID id = SYMBOL_WXCOMMANDEDITORTYPEDIALOG_IDNAME, const wxString& caption = SYMBOL_WXCOMMANDEDITORTYPEDIALOG_TITLE, const wxPoint& pos = SYMBOL_WXCOMMANDEDITORTYPEDIALOG_POSITION, const wxSize& size = SYMBOL_WXCOMMANDEDITORTYPEDIALOG_SIZE, long style = SYMBOL_WXCOMMANDEDITORTYPEDIALOG_STYLE );

    /// Creation
    bool Create( const wxEditorCommands& commands, wxWindow* parent, wxWindowID id = SYMBOL_WXCOMMANDEDITORTYPEDIALOG_IDNAME, const wxString& caption = SYMBOL_WXCOMMANDEDITORTYPEDIALOG_TITLE, const wxPoint& pos = SYMBOL_WXCOMMANDEDITORTYPEDIALOG_POSITION, const wxSize& size = SYMBOL_WXCOMMANDEDITORTYPEDIALOG_SIZE, long style = SYMBOL_WXCOMMANDEDITORTYPEDIALOG_STYLE );

    /// Destructor
    ~wxCommandEditorTypeDialog();

    /// Initialises member variables
    void Init();

    /// Creates the controls and sizers
    void CreateControls();
    
    const wxEditorCommands& GetCommands() const { return m_commands; }

    /// Use tooltips
    static void SetUseTooltips(bool useTooltips) { sm_useTooltips = useTooltips; }

////@begin wxCommandEditorTypeDialog event handler declarations

////@end wxCommandEditorTypeDialog event handler declarations

////@begin wxCommandEditorTypeDialog member function declarations

    /// Retrieves bitmap resources
    wxBitmap GetBitmapResource( const wxString& name );

    /// Retrieves icon resources
    wxIcon GetIconResource( const wxString& name );
////@end wxCommandEditorTypeDialog member function declarations

    /// Should we show tooltips?
    static bool ShowToolTips();

////@begin wxCommandEditorTypeDialog member variables
    wxChoice* m_mediaTypeCtrl;
////@end wxCommandEditorTypeDialog member variables

    wxEditorCommands m_commands;
    static bool      sm_useTooltips;
};

#endif
    // _COMMANDEDITORTYPEDIALOG_H_
